#!/usr/bin/python3
# coding=UTF-8
'''
    可以用于在多个文件中包含同样的代码，在34行可以指定添加的位置，列表从0开始算起
    路径最好是绝对路径，绝对路径后面记得加反斜杠/，例如/var/www/html/

    [+]2021.3.6-->添加了list_dir函数，用于读取目录下的文件名，并且判断后缀
    [+]2021.3.7-->修复了没有后缀名文件导致的(IndexError: list index out of range)的错误
    [+]2021.3.8-->使用argv[]代替input,argv[1]为路径,argv[2]为需要插入的值
'''
import os
import sys

class ZYGS:
    def __init__(self, path, new_values):
        self.path = path
        self.values = new_values

    def list_dir(self):
        # 读取指定目录下的文件，组成一个列表
        dir_lines_all = os.listdir(path)
        dir_lines = []
        for judge in dir_lines_all:
            # 依次取出文件名分割，判断文件后缀是不是php，是的话，添加到dir_lines中
            file_name_split = judge.split('.')
            if len(file_name_split) > 1 and file_name_split[1]  == 'php':
                dir_lines.append(judge)
        return dir_lines

    def run(self):
        # 循环指定目录下的文件，并且将内容写入到数组
        dir_lines = self.list_dir()
        file_values = []
        for dir in dir_lines:
            file_open_read = open(path + dir, 'r', encoding='utf-8')
            for lines in file_open_read:
                file_values.append(lines)
            file_open_read.close()
            # 用于指定将新内容添加到某个指定的位置
            file_values.insert(1, new_values + '\n')
            with open(path + dir, 'w+', encoding='utf-8') as f:
                # 使用join拼接列表的内容
                new = ''.join(file_values)
                # 写入
                f.write(new)
                print('*' * 66)
                print(dir + ' ---> OK')
                print("New Values: " + new_values)
                # 清空当前文件的列表内容，准备下一个文件
                file_values.clear()


if __name__ == '__main__':
    # path = input('请输入路径:')
    # new_values = input("请输入需要添加的内容:")
    path = sys.argv[1]
    new_values = sys.argv[2]
    zygs = ZYGS(path, new_values)
    zygs.run()
    print('+' * 66)
    print('')
    print('Form vFREE in 2021.3.5')
    print('')

